package org.example.controller;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.example.service.HealthService;
import org.example.utils.R;
import org.springframework.web.bind.annotation.*;

/**
 * ClassName: HealthController
 * Description:
 *
 * @Author Kotaro
 * @Create 2024/12/4 16:20
 * @Version 1.0
 */
@CrossOrigin //允许其他源访问我们的controller
@RestController
@RequestMapping("health")
@Slf4j
public class HealthController {

    @Resource
    private HealthService healthService;

    @GetMapping("bloodGlucose")//返回老人血糖的折线图数据
    public R showBloodGlucose(@RequestParam String elderlyId){
        // 获取血糖数据
        JSONObject jsonObject = healthService.getBloodGlucoseData(elderlyId);

        // 检查 jsonObject 是否为 null
        if (jsonObject == null) {
            return R.error("获取血糖数据失败，返回数据为空", null);
        }

        System.out.println(jsonObject);

        // 获取 "data" 对象
        JSONArray dataArray = jsonObject.getJSONArray("data");

        // 检查 dataArray 是否为空
        if (dataArray == null || dataArray.isEmpty()) {
            return R.error("获取失败，没查询到血糖值", null);
        }

        // 如果有数据，返回成功
        return R.successful("获取成功", dataArray);
    }

    @GetMapping("bloodPressure")//返回老人血压的折线图数据
    public R showBloodPressure(@RequestParam String elderlyId){
        // 获取血压数据
        JSONObject jsonObject = healthService.getBloodPressureData(elderlyId);

        // 使用 log 输出 jsonObject 内容，便于调试
        log.info("Blood Pressure Data: {}", jsonObject);

        // 获取 "data" 数组
        JSONArray dataArray = jsonObject.getJSONArray("data");

        // 判断 data 数组是否为空
        if (dataArray == null || dataArray.isEmpty()) {
            return R.error("获取失败，没查询到血压值", null);
        }

        // 创建一个新的 JSONObject 来包装返回的结果
        JSONObject response = new JSONObject();
        response.put("data", dataArray); // 包装 data 数组

        // 这里可以返回成功消息，连同数据
        return R.successful("获取成功", response);
    }
}
